package com.wutma.common.core.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum ResultCode {

    // 定义状态码

    //操作成功
    SUCCESS (1000, "操作成功"),

    //服务器内部错误，友好提⽰
    ERROR (2000, "服务繁忙请稍后重试"),

    //操作失败，但是服务器不存在异常
    FAILED (3000, "操作失败"),
    FAILED_UNAUTHORIZED (3001, "未授权"),
    FAILED_PARAMS_VALIDATE (3002, "参数校验失败"),
    FAILED_NOT_EXISTS (3003, "资源不存在"),
    FAILED_ALREADY_EXISTS (3004, "资源已存在"),
    AILED_USER_EXISTS (3101, "用户已存在"),
    FAILED_USER_NOT_EXISTS (3102, "⽤⼾不存在"),
    FAILED_LOGIN (3103, "用户名或密码错误"),
    FAILED_USER_BANNED (3104, "您已被列⼊⿊名单, 请联系管理员."),
    FAILED_USER_PHONE (3105, "手机号格式错误"),
    FAILED_FREQUENT (3106, "操作频繁，请稍后重试"),
    FAILED_SEND_LIMIT (3107, "当天验证码获取次数已达上限，无法重新获取"),
    FAILED_SEND_CODE (3108, "验证码发送失败"),
    FAILED_INVALID_CODE (3109, "验证码无效"),
    FAILED_ERROR_CODE (3110, "验证码错误"),
    FAILED_QUERY_TIME (3111, "时间格式错误"),

    EXAM_START_TIME_BEFORE_CURRENT_TIME(3201, "竞赛开始时间不能早于当前时间"),
    EXAM_START_TIME_AFTER_END_TIME(3202, "竞赛开始时间不能晚于竞赛结束时间"),
    EXAM_NOT_EXISTS (3203, "竞赛不存在"),
    EXAM_QUESTION_NOT_EXISTS (3204, "为竞赛新增的题目不存在"),
    EXAM_STARTED (3205, "竞赛已开始，无法操作"),
    EXAM_HAS_NOT_QUESTION (3206, "当前竞赛中没有题目，无法发布"),
    EXAM_HAS_FINISHED (3207, "竞赛已结束，无法操作"),
    EXAM_IS_PUBLISH (3208, "竞赛已发布，无法进行编辑删除操作"),

    USER_EXAM_HAS_ENTER (3301, "用户已报名过该竞赛，无需重复报名"),

    FAILED_FILE_UPLOAD (3401, "文件上传失败"),
    FAILED_FILE_UPLOAD_TIME_LIMIT (3402, "当天上传图片数量超过上限"),

    ES_SAVE_FAILURE (3403, "文档保存失败"),
    ES_DELETE_FAILURE (3404, "文档删除失败"),
    ES_SELECT_FAILURE (3405, "文档获取失败"),

    QUESTION_FIRST_FAILURE (3501, "当前已是第一道题"),
    QUESTION_FINAL_FAILURE (3502, "当前已是最后一题"),

    FAILED_NOT_SUPPORT_PROGRAM (3601, "当前系统不支持该语言"),

    FAILED_RABBIT_PRODUCE (3701, "mq生产消息失败");

    /**
     * 状态码
     */
    private int code;

    /**
     * 状态描述
     */
    private String msg;
}
